 ;(function ($,window,document) {
 	//一个页面文字的存储对象
	var timer = null;
 	var htmlText = "";
 	var verify = [false,false,false,false];
	function checkEmail(str){
		var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
		if(re.test(str)){return true;}
		else if(str===""){return '请输入您的邮箱';}
		else{return '请输入正确的邮箱';}
	}
	function checkMobile(str){
		var re = /^1\d{10}/;
		if(re.test(str)){return true;}
		else if(str===""){return '请输入您的手机号码';}
		else if(str.length<11){return '请输入正确的11位手机号码';}
		else{return '请输入正确的手机号';}
	}
	function checkPwd(str){
		if(str.length === 0){return '请填写密码';}
		else if(str.length<6){return '密码太短，至少6个字符';}
		else{return true;}
	}
	function checkMobileCode(str){
		if(str.length===0){return '请输入短信动态码';}
		else{
		    $.User.checkMobileCode($("#inputMobile").val(),str);
		    if($.User.flag===true){
		        return true;
		    }else{
		        return '输入错误，请重新输入';
		    }
		}
	}
	function pwdStrong (str) {
		var lv = 0;
		if(str.match(/[a-z]/g)){lv++;}
	    if(str.match(/[0-9]/g)){lv++;}
	    if(str.match(/(.[^a-z0-9])/g)){lv++;}
	    if(lv > 3){lv=3;}
	    return lv;
	}
	function eqPwd(newPwd,oldPwd){
		if(newPwd.length===0){ return '请再次输入密码';}
		else if(newPwd===oldPwd){return true;}
		else{return '两次输入的密码不匹配';}
	}
	function checkCode(src){
		if(src === ""){
			return '请输入验证码';
		}else if(src.length===4){
		    return true;
		}else{
		    return '请输入正确的验证码';
		}
	}
	//手机输入监控
	$("#inputMobile").blur(function(){
	    var value = $(this).val();
		var returnValue = checkMobile(value);
		if(returnValue===true){
			htmlText = "<i class='icon-success'></i>";
			//进行验证手机是否存在
			$.User.mobileExists(value);
			if($.User.flag===false){
			    htmlText = "<i class='icon-error'></i>您输入的手机号码已存在";
			    verify[0]=false;
			}else{
			    htmlText = "<i class='icon-success'></i>";
			    verify[0]=true;
			}
		}else{
			htmlText = "<i class='icon-error'></i>"+returnValue;
			verify[0]=false;
		}
		$(this).next().html(htmlText);
	});
	//密码校验监控
	$("#confirmPassword").blur(function(){
		var returnValue = eqPwd($(this).val(),$("#inputPassword").val());
		if(returnValue===true){
			htmlText = "<i class='icon-success'></i>";
			verify[3]=false;
		}else{
			htmlText = "<i class='icon-error'></i>"+returnValue;
			verify[3]=false;
		}
		$(this).next().html(htmlText);
	});
	//邮箱输入监控
	$("#inputEmail").blur(function(){
		var returnValue = checkEmail($(this).val());
		verify[1]=true;
		if(returnValue===true){
		    $.User.emailExists($(this).val());
		    if($.User.flag===true){
		        htmlText = "<i class='icon-success'></i>";
		        verify[0]=true;
		    }else{
		        htmlText = "<i class='icon-error'></i>您输入的邮箱已存在";
		        verify[0]= false;
		    }
		}else{
			htmlText = "<i class='icon-error'></i>"+returnValue;
			verify[0]=false;
		}
		$(this).next().html(htmlText);
	});
	$("#mobileCode").blur(function(){
		var returnValue = checkMobileCode($(this).val());
		if(returnValue === true){
			htmlText = "<i class='icon-success'></i>";
			verify[1]=true;
		}else{
			htmlText = "<i class='icon-error'></i>"+returnValue;
			verify[1]=false;
		}
		$(this).parent().find('.inline-tip').html(htmlText);
	});
	//输入密码监控
	$("#inputPassword").blur(function(){
		var returnValue = checkPwd($(this).val());
		if(returnValue===true){
			htmlText = "<i class='icon-success'></i>";
			verify[2]=true;
		}else{
			htmlText = "<i class='icon-error'></i>"+returnValue;
			verify[2]=false;
		}
		$(this).next().html(htmlText);
	});
	//获取短信验证码
	$("#getMobileCode").click(function(){
	    var mobile = $("#inputMobile").val();
        var code = $("#authcode").val();
		var returnValue = checkMobile(mobile);
		if(returnValue===true){
		    $.User.getMobileCode(mobile);
		    if($.User.flag==='mobileError'){
		        htmlText = "<i class='icon-error'></i>您输入的手机号码已存在";
		        $("#inputMobile").next().html(htmlText);
		        return null;
		    }
			var time = 60;
			$("#getMobileCode").attr("disabled","disabled");
			countdown(time);
		}else if(returnValue===false){
			htmlText = "<i class='icon-error'></i>"+returnValue;
			$("#inputMobile").next().html(htmlText);
		}
	});
	//按钮计时器
	function countdown(time) {
		timer = setTimeout(function() {
			countdown(time);
		},1000);
		var val = document.getElementById('getMobileCode');
		if (time === 0) {
			val.removeAttribute("disabled");
			val.innerText="重新发送";
			clearTimeout(timer);
		} else {
			val.setAttribute("disabled", true);
			val.innerText="重新发送(" + time + ")";
			time--;
		}
	}
	//密码强度实时检测
	$("#inputPassword").on("input propertychange",function(){
		var weight = pwdStrong($(this).val());
		$("#pwdStrongth b").removeClass("active");
		for (var i = 0; i < weight; i++) {
			$("#pwdStrongth b:eq("+i+")").addClass("active");
		}
	});
	//用户手机注册
	$("#submitMobile").click(function(){
        var mobile = $("#inputMobile").val();
        var pwd = $("#inputPassword").val();
        var dynamicCode = $("#mobileCode").val();
        var redirect = "";
        $("#inputMobile").blur();
        $("#inputPassword").blur();
        $("#mobileCode").blur();
        $("#confirmPassword").blur();
        for(var i in verify){
            if(i===false){
                return false;
            }
        }
        $.User.signInByMobile(mobile,pwd,dynamicCode,redirect);
	});
	//邮箱注册
	$("#submitEmail").click(function(){
	    var email = $("#inputEmail").val();
	    var pwd = $("#inputPassword").val();
	    var redirect = "";
        $("#inputEmail").blur();
        $("#inputPassword").blur();
        $("#confirmPassword").blur();
	    for(var j in verify){
	        if(j===false){
	            return false;
	        }
	    }
	    $.User.signInByEmail(email,pwd,redirect);
	});
})(jQuery,window,document);